home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / develop / libsrc11.arc / MULLUL.S < prev    next >
Text File  |  1989-04-27  |  1KB  |  71 lines

  1. ******************************************************************************
  2. * mullul.s 3.1 11/12/84 
  3. *
  4. *        68HC11 CROSS C COMPILER RUN-TIME LIBRARY
  5. *
  6. *           (c) Copyright 1984, Motorola, Inc.
  7. *
  8. *  FUNCTION NAME:    .mullul
  9. *
  10. *  ACTION:        Calculate the product of two 16-bit integers
  11. *            yielding a 16-bit result.
  12. *
  13. *  REGISTERS AND STACK:
  14. *
  15. *  ON ENTRY:    X:    FP (frame pointer)
  16. *        D:    Multiplicand
  17. *        Y:    Multiplier
  18. *
  19. *        STACK:      Return Address
  20. *        SP:    
  21. *
  22. *  ON EXIT:    X:    FP 
  23. *        D:    Product
  24. *
  25. *        STACK:    Previous Contents
  26. *        SP:    
  27. *
  28. * NOTES:        DHI DLO
  29. *             x  YHI YLO
  30. *             ----------
  31. *            DLOxYLO (P1)
  32. *            DHIxYLO     (P2)
  33. *            DLOxYHI    (P3)
  34. *        DHIxYHI        (P4)
  35. *        ---------------
  36. *            RHI RLO    (Result)
  37. *
  38. *        RLO = P1LO
  39. *        RHI = P1HI + P2LO + P3LO
  40. *
  41. ******************************************************************************
  42.     psct
  43.     xdef    .mullul
  44. .mullul:
  45.     pshx        save FP
  46.     pshy        save YLO YHI
  47.     pshb        save DLO
  48.     psha        save DHI
  49.     tsx        use X to access args
  50.     ldaa    3,%x    YLO
  51.     mul        DLOxYLO
  52.     pshb        save RLO (P1LO)
  53.     psha        save RHI (P1HI)
  54.     ldab    0,%x    DHI
  55.     ldaa    3,%x    YLO
  56.     mul        DHIxYLO
  57.     pula        RHI
  58.     aba        RHI + P2LO
  59.     psha        save RHI
  60.     ldab    1,%x    DLO
  61.     ldaa    2,%x    YHI
  62.     mul        DLOxYHI
  63.     pula        RHI
  64.     aba        RHI + P3LO
  65.     pulb        RLO
  66.     pulx        clean up...
  67.     pulx        ..stack
  68.     pulx        restore FP
  69.     rts        return
  70.     end
  71.